-- multi_damage
-- created by chendh
-- 天空战附加属性：天空战属性概率造成多倍伤害
-- ([physics:([500:1000])代表飞艇主炮攻击100%概率造成1.5倍伤害
-- ([skill:([500:1000])代表秘宝攻击100%概率造成1.5倍伤害

return {
    -- 空属性
    getEmptyProp = function()
        return {};
    end,

    -- 合并属性
    mergeSkyProp = function(data, addon)
        local result = {};

        if not data then
            result = table.deepcopy(addon);
        else
            result = table.deepcopy(data);

            for style, value in pairs(addon) do
                if not result[style] then
                    result[style] = {};
                end

                for type, num in pairs(value) do
                    result[style][type] = value[type] + (result[style][type] or 0);
                end
            end
        end

        return result;
    end,

    parseDesc = function(desc, data)
        -- 按顺序替换，每次替换一个
        local styleData;
        for _, key in ipairs(table.keys(data)) do
            styleData = data[key];
            for _, damage in ipairs(table.keys(styleData)) do
                -- 触发率
                desc = string.gsub(desc, "{rate}", math.modf(styleData[damage] / 10), 1);

                -- 额外伤害率
                desc = string.gsub(desc, "{multi_damage}", math.modf(damage / 10), 1);
            end
        end

        return desc;
    end,
};